package com.sisbibvir.unmsm.controller;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import com.sisbibvir.unmsm.dao.JPAUtil;
import com.sisbibvir.unmsm.dao.TemaDAO;
import com.sisbibvir.unmsm.entidades.Post;
import com.sisbibvir.unmsm.entidades.Tema;

@ManagedBean(name = "temaBean")
@SessionScoped
public class TemaController {

	private JPAUtil util;
	private TemaDAO te;
	private List<Tema> temas;
	private Tema tema;
	private int id;
	private int nroPosts;
	private String titulo;
	private Post post;
	private String contenido;
	
	public TemaController() {
		
	}
	
	public void agregar() {
		util = new JPAUtil();
		te = new TemaDAO(util.getEntityManager());
		tema = new Tema();
		post = new Post();
		generarId();
		tema.setId(id);
		nroPosts = 1;
		tema.setNroPosts(nroPosts);
		tema.setDetalle(titulo);
		te.create(tema);
		post.setTema(tema);
		post.setId(tema.getPosts().size() + 1);
		post.setDetalle(contenido);
		tema.getPosts().add(post);
		util = null;
		System.gc();
	}
	
	private void generarId()  {
		id = getTemas().size() + 1;
	}
	
	public List<Tema> getTemas() {
		util = new JPAUtil();
		te = new TemaDAO(util.getEntityManager());
		temas = te.listarTodos();
		util = null;
		System.gc();
		return temas;
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getNroPosts() {
		return nroPosts;
	}

	public void setNroPosts(int nroPosts) {
		this.nroPosts = nroPosts;
	}

	public void setTemas(List<Tema> temas) {
		this.temas = temas;
	}

	public Tema getTema() {
		return tema;
	}

	public void setTema(Tema tema) {
		this.tema = tema;
	}

	public String getDetalle() {
		return titulo;
	}

	public void setDetalle(String detalle) {
		this.titulo = detalle;
	}

	public String getContenido() {
		return contenido;
	}

	public void setContenido(String contenido) {
		this.contenido = contenido;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	
	
}
